package com.eastfair.tag.service;

import com.eastfair.core.base.R;
import com.eastfair.tag.dto.TagTargetDTO;
import com.eastfair.tag.enumeration.TagResourceTypeEnum;
import com.eastfair.tag.vo.TagTargetVO;

import java.util.List;

/**
 * Date:2022/3/22
 * Time:10:09
 *
 * @author zjn
 */
public interface TagTargetService {

    /**
     * 主体标签直接绑定
     *
     * @param tagTargetDTO 主体标签信息
     * @return 是否成功
     */
    R<Boolean> saveTagTarget(TagTargetDTO tagTargetDTO);

    /**
     * 主体标签间接绑定
     *
     * @param tagTargetDTO 主体资源信息
     * @return 是否成功
     */
    R<Boolean> saveTagTargetByResourceType(TagTargetDTO tagTargetDTO);

    /**
     * 获取主体标签
     *
     * @param tagTargetDTO 主体资源信息
     * @return 是否成功
     */
    R<List<TagTargetVO>> getTargetTagList(TagTargetDTO tagTargetDTO);


    /**
     * 删除标签与主体的关系
     *
     * @param tagTargetDTO
     * @param tagResourceTypeList
     */
    R<Boolean> delTargetTagByResourceType(TagTargetDTO tagTargetDTO, List<TagResourceTypeEnum> tagResourceTypeList);
}
